package com.briup.oagg.model.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.briup.oagg.model.bean.basic.LearnAlgorithm;
import com.baomidou.mybatisplus.extension.service.IService;
import com.briup.oagg.model.web.vm.LearnAlgorithmAddVM;
import com.briup.oagg.model.web.vm.LearnAlgorithmListVM;
import com.briup.oagg.model.web.vm.LearnAlgorithmVM;

import java.util.List;

/**
 * 学习算子信息业务逻辑接口
 *
 * @author briup
 */
public interface ILearnAlgorithmService extends IService<LearnAlgorithm> {
    /**
     * 根据算子编号查询算子详细信息（配置信息+显示信息）
     * @param algorithmId 算子编号
     * @return 算子信息
     */
    LearnAlgorithmVM findById(String algorithmId);

    /**
     * 分页多条件查询深度学习算子
     * @param pageNum 当前页码
     * @param pageSize 每页大小
     * @param name 算子名称
     * @return 算子分页信息
     */
    Page<LearnAlgorithmVM> findByPage(int pageNum, int pageSize, String name);

    /**
     * 新增算子
     * @param vm 新增算子参数
     */
    void addLearnAlgorithm(LearnAlgorithmAddVM vm);

    /**
     * 根据算子编号删除算子信息
     * @param algorithmId 算子编号
     */
    void deleteById(String algorithmId);

    /**
     * 根据算子平台和类型查询算子信息列表
     * @param platform 算子平台
     * @param type 算子类型
     * @return  算子信息列表
     */
    List<LearnAlgorithmListVM> findByCondition(String platform, Integer type);
}
